<?php
class SlideAction extends BaseAction {
	
	const TYPE = 'slide';
	
	public function index(){
		$page = $this->_get("page");
		$page = $page>1? $page : 1;	//如page参数为[字母]或[为空]，情况的默认赋值
		$sql = "SELECT * FROM ".C("DB_PREFIX")."slide ORDER BY slide_id DESC";	//分页查询SQL语句
		$pagination = CommonUtil::getPage($sql,$page,10);
		
		$this->assign("pagination",$pagination);
		$this->assign("type", self::TYPE);
		$this->display();
	}
	
	//[操作流]默认页面{修改} Or {新增}
	//当传过来的ID有值，则进行修改操作流
	//当传过来的ID没值，则进行新增操作流
	public function todo(){
		$referUrl = $_SERVER['HTTP_REFERER'];
		$id = $this->_get("id");
		if($id){
			$obj = SlideHelper::getObject("slide_id=$id");
			$this->assign("obj",$obj);
		}
		$this->assign("referUrl",$referUrl);
		$this->assign("type", self::TYPE);
		$this->display();
	}
	
	public function add(){
		
		$slideTempImgAddr = $this->_post("slide_img_text");	//幻灯图片临时地址
		$data["title"] = $this->_post("title");
		$data["link"] = $this->_post("link");
		
		if(empty($data["title"])){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"标题不能为空！");
			return;
		}
		if(empty($data["link"])){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"链接不能为空！");
			return;
		}
		if(empty($slideTempImgAddr)){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"幻灯图片必填！");
			return;
		}
		
		//------------------------临时文件转移 开始--------------------------------------------------
		$silideImgAddr = CommonUtil::getRemovedProductPath($slideTempImgAddr);
		$data['img_addr'] = $silideImgAddr;
		//------------------------临时文件转移结束--------------------------------------------------
		
		$result = SlideHelper::add($data);
		if($result === false){	//失败，则提示错误信息，并返回上一个页面[记录了上一个页面，用户填写的信息]
			echo CommonUtil::ajaxReturn(Status::$ERROR,"服务器繁忙，请稍后重试！");
		}else{	//添加成功
			
			//只有数据库更新成功，才将文件进行真正的操作
			CommonUtil::remove2ProductPath($slideTempImgAddr);
			echo CommonUtil::ajaxReturn(Status::$REDIRECT,null,__APP__."/center/slide/");
		}
	}
	
	public function update(){
		$id = $this->_post("id");
		$obj = SlideHelper::getObject("slide_id=$id");
		if(empty($obj)){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"该对象不存在，操作失败！");
			return;
		}
		$data["title"] = $this->_post("title");
		$data["link"] = $this->_post("link");
		$slideTempImgAddr = $this->_post("slide_img_text");	//幻灯图片临时地址
		$slideImgAddr = CommonUtil::getRemovedProductPath($slideTempImgAddr);	//获取到幻灯图片正式环境下的地址
		
		if(empty($data["title"])){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"标题不能为空！");
			return;
		}
		if(empty($data["link"])){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"链接不能为空！");
			return;
		}
		if(empty($slideTempImgAddr)){
			echo CommonUtil::ajaxReturn(Status::$ERROR,"幻灯图片必填！");
			return;
		}
		
		//------------------------临时文件转移 开始--------------------------------------------------
		if($obj["img_addr"] != $slideImgAddr){
			$data['img_addr'] = $slideImgAddr;
		}
		//------------------------临时文件转移结束--------------------------------------------------
		
		$result = SlideHelper::update($data,"slide_id={$id}");
		if($result === false){	//失败，则提示错误信息，并返回上一个页面[记录了上一个页面，用户填写的信息]
			echo CommonUtil::ajaxReturn(Status::$ERROR,"服务器繁忙，请稍后重试！");
		}else{	//修改成功，提示成功信息，并且返回上一个页面
			
			//只有数据库更新成功，才将文件进行真正的操作
			if($obj["img_addr"] != $slideImgAddr){
				//删除前一任的文件，再进行转移临时文件
				if(!empty($obj["img_addr"])){
					CommonUtil::deleteFile($obj["img_addr"]);
				}
				CommonUtil::remove2ProductPath($slideTempImgAddr);
			}
			echo CommonUtil::ajaxReturn(Status::$SUCCESS,"修改成功！");
		}
	}
	
	public function delete(){
		
		$id = $this->_get("id");
		$obj = SlideHelper::getObject("slide_id={$id}");
		
		if(empty($obj)){
			echo CommonUtil::ajaxReturn(Status::$ERROR, "对象不存在，操作失败！");
			return ;
		}
		
		//删除“已上传文件”
		if(!empty($obj['img_addr'])){
			CommonUtil::deleteFile($obj['img_addr']);
		}
		$result = SlideHelper::delete("slide_id={$id}");
		if($result === false){
			echo CommonUtil::ajaxReturn(Status::$ERROR, "服务器繁忙，请稍后重试！");
			return ;
		}
		echo CommonUtil::ajaxReturn(Status::$RELOAD_PAGE, "操作成功！");
		
	}

	
}